package me.yangzhi.day_08;

import android.os.Bundle;

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.viewpager2.widget.ViewPager2;

import com.google.android.material.bottomnavigation.BottomNavigationView;

import java.util.ArrayList;
import java.util.List;

import me.yangzhi.day_08.ui.home.HomeFragment;
import me.yangzhi.day_08.adapter.ViewPagerAdapter;
import me.yangzhi.day_08.ui.developing.DevelopingFragment;

/**
 * MainActivity - 应用程序的主活动
 * 
 * 主要功能：
 * 1. 初始化底部导航栏
 * 2. 设置ViewPager2实现页面切换
 * 3. 管理首页和其他开发中页面的Fragment
 */
public class MainActivity extends AppCompatActivity {

    // ViewPager2用于实现页面的滑动切换
    private ViewPager2 viewPager;
    // 底部导航栏，包含首页、外卖、订单、我的四个选项
    private BottomNavigationView bottomNavigation;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // 设置活动的布局文件
        setContentView(R.layout.activity_main);

        // 初始化视图组件
        initViews();
        // 设置ViewPager和其适配器
        setupViewPager();
        // 设置底部导航栏的点击事件
        setupBottomNavigation();
    }

    /**
     * 初始化视图组件
     * 通过findViewById获取ViewPager2和BottomNavigationView的实例
     */
    private void initViews() {
        viewPager = findViewById(R.id.viewPager);
        bottomNavigation = findViewById(R.id.bottomNavigation);
    }

    /**
     * 设置ViewPager2
     * 
     * 功能：
     * 1. 创建Fragment列表
     * 2. 添加首页Fragment和开发中Fragment
     * 3. 设置ViewPager2的适配器
     * 4. 禁用ViewPager2的滑动功能
     */
    private void setupViewPager() {
        // 创建Fragment列表
        List<Fragment> fragments = new ArrayList<>();
        // 添加首页Fragment - 已实现的功能页面
        fragments.add(new HomeFragment());
        // 添加外卖页面 - 开发中状态
        fragments.add(new DevelopingFragment());
        // 添加订单页面 - 开发中状态
        fragments.add(new DevelopingFragment());
        // 添加我的页面 - 开发中状态
        fragments.add(new DevelopingFragment());

        // 创建并设置ViewPager适配器
        ViewPagerAdapter pagerAdapter = new ViewPagerAdapter(this, fragments);
        viewPager.setAdapter(pagerAdapter);
        // 禁用ViewPager2的滑动功能，只能通过底部导航栏切换
        viewPager.setUserInputEnabled(false);
    }

    /**
     * 设置底部导航栏
     * 
     * 功能：
     * 1. 设置导航项的点击监听器
     * 2. 根据点击的项目切换ViewPager2的页面
     * 3. 实现底部导航栏和ViewPager2的联动
     */
    private void setupBottomNavigation() {
        bottomNavigation.setOnItemSelectedListener(item -> {
            // 获取被点击的菜单项ID
            int itemId = item.getItemId();
            // 根据不同的菜单项ID切换到对应的页面
            if (itemId == R.id.navigation_home) {
                // 切换到首页
                viewPager.setCurrentItem(0);
                return true;
            } else if (itemId == R.id.navigation_takeout) {
                // 切换到外卖页面
                viewPager.setCurrentItem(1);
                return true;
            } else if (itemId == R.id.navigation_order) {
                // 切换到订单页面
                viewPager.setCurrentItem(2);
                return true;
            } else if (itemId == R.id.navigation_profile) {
                // 切换到我的页面
                viewPager.setCurrentItem(3);
                return true;
            }
            return false;
        });
    }
}